MARTINE is a not completely finished project that formed the core of my third-year BSc thesis. It is intended as a universal processor simulator. Unfortunately the only documentation is my thesis, which is not the worlds best-written manual, so this read me will have to suffice.
Warning: MARTINE currently lacks an integrated assembler, so programming the systems you create must be done by hand, just like back in the 70s when micros had no compilers, assemblers, etc! If you find this sort of thing fun, MARTINE is for you- its like having a virtual CPU tinkering kit.
It has bugs, so crashes are possible. It is 68K only, so Powermac users can only run this emulated, which is especially bizarre! MARTINE is not fast, so real-time emulation is not feasible.
CPUs are defined in terms of a microcode language, which is documented in my thesis. You can figure out much of this from the example systems given.
Currently, bus pathways drawn on the MARTINE drawing area are ignored, so systems are assumed to be connected to the system memory via a common memory-mapped bus. You define the starting addresses for memory devices you place in the system, so this is not a limitation for simple systems.
Once you have created your system drawing, you need to define the CPU instruction set. This is defined in terms of series of microcode sequences that are compiled by MARTINE. The instructions are given mnemonics (such as ADD, JSR, etc) that you define. This was intended to be the basis for a self-configuring assembler for MARTINE, but that part is not implemented yet.
Programs that the system can run are defined in terms of the CPU's instruction set that you define, but have to be entered into the "ROM" of the system by hand, editing the memory contents directly. Hint: double-clicking a "chip" in the diagram allows you to set its parameters, option-double-clicking "opens" the device so you can edit its contents.
Once you have done all this, you can compile a working model of the system and let it run. There are various ways to do I/O with the system- using a video text device (a 40 x 25 text- character screen- very hi-tech!) or VIA "chips" that you can directly set the inputs, outputs, DDR's, and other registers while the system runs.
There are many pitfalls in getting the whole system to run, though I really made an effort to make the program easy to use in general. You might like to play with the pre-built systems that I have supplied- the most sophisticated is the 'Tutorial System + VIA'- open it, compile it, then hit the Run button. After a while of this, you might like to hit the Interrupt button and see what happens. Then go back and figure out how it works. If you succeed, you are the sort of person who MARTINE is designed for, If not, than feel free to bin it.
MARTINE is supplied as is, for free, with no warranty implied. If you like it, or have constructive criticism or suggestions, please eMail me- I am interested in developing it further.... one day.